// https://www.lintcode.com/problem/first-position-unique-character/description
// 646. 第一个独特字符位置
// 给出一个字符串。找到字符串中第一个不重复的字符然后返回它的下标。如果不存在这样的字符，返回 -1。

// 样例
// 给出字符串 s = "lintcode"，返回 0。
// 给出字符串 s = "lovelintcode"，返回 2。



class Solution {
public:
    /**
     * @param s: a string
     * @return: it's index
     */
    int firstUniqChar(string &s) {
        map<char, int> count_map;
        for (int i = 0; i < s.length(); ++i)
        {
            count_map[s[i]]++;
        }
        for (int i = 0; i < s.length(); ++i)
        {
            if (count_map[s[i]] == 1)
            {
                return i;
            }
        }
        return -1;
    }
};